message(NOTICE "开始构建 mbedtls 模块")
# 检查构建目标是否存在
if(TARGET mbedtls-${MBEDTLS_TAG})
    message(NOTICE "mbedtls 模块已存在 mbedtls-${MBEDTLS_TAG}")
    return()
endif()
# 导入 openssl 模块
include(module/openssl_module)
include(module/zlib_module)
existsInstallFiles(
    ${MODULE_STAMP}/mbedtls/${MBEDTLS_TAG}
    ${MODULE_INSTALL_DIR}/mbedtls/${MBEDTLS_TAG}
    mbedtls-${MBEDTLS_TAG})
# 构建 mbedtls 库
ExternalProject_Add(
    mbedtls-${MBEDTLS_TAG}
    PREFIX         ${EXTERNAL_PROJECT_ROOT}                # ✅ 显式设置 prefix 目录
    SOURCE_DIR     ${MODULE_SRC}/mbedtls/${MBEDTLS_TAG}          # ✅ 显式设置 source 目录
    BINARY_DIR     ${MODULE_BUILD}/mbedtls/${MBEDTLS_TAG}        # ✅ 显式设置 build 目录
    INSTALL_DIR    ${MODULE_INSTALL_DIR}/mbedtls/${MBEDTLS_TAG}  # ✅ 显式设置 install 目录
    STAMP_DIR      ${MODULE_STAMP}/mbedtls/${MBEDTLS_TAG}        # ✅ 显式设置 stamp 目录
    TMP_DIR        ${MODULE_TMP}/mbedtls/${MBEDTLS_TAG}          # ✅ 显式设置 tmp 目录

    DOWNLOAD_COMMAND # 下载命令
        COMMAND ${CMAKE_COMMAND}
            -DSOURCE_DIR=<SOURCE_DIR>
            -DGIT_REPOSITORY=${MBEDTLS_REPO}
            -DGIT_TAG=${MBEDTLS_TAG}
            -P ${__DIR}/utils/git.cmake
    # ✅ 正确的 CMake 配置命令
    CONFIGURE_COMMAND
        ${CMAKE_COMMAND}
        -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
        -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
        -DCMAKE_POSITION_INDEPENDENT_CODE=ON
        -DBUILD_SHARED_LIBS=OFF     # 静态库
        -DCPR_BUILD_TESTS=OFF	    # 是否构建测试用例（开发时建议开启，生产关闭）
        -DCPR_BUILD_EXAMPLES=OFF	# 是否构建示例代码
        -DGENERATE_COVERAGE=OFF	    # 是否生成代码覆盖率报告（测试用）
        -DWARNINGS=OFF	            # 是否启用编译警告
        -DCURL_DISABLE_LIBPSL=ON    # 禁用 libpsl 支持
        -DCPR_ENABLE_SSL=ON	        # 启用 SSL 支持
        -DCPR_MBEDTLS=OFF	        # 使用 mbedTLS 作为 SSL 后端
        -DCPR_ZLIB=ON	            # 使用 zlib 压缩
        -DCPR_OPENSSL=ON	        # 使用 OpenSSL 作为 SSL 后端（默认）
        -DCMAKE_PREFIX_PATH=${SYSTEM_PREFIX}
        -S <SOURCE_DIR>
        -B <BINARY_DIR>
    BUILD_COMMAND
        ${CMAKE_COMMAND} --build <BINARY_DIR> -j${NPROC}
    INSTALL_COMMAND
        ${CMAKE_COMMAND}
            --install <BINARY_DIR>
            --prefix <INSTALL_DIR>
            --config ${CMAKE_BUILD_TYPE}
        # 将安装文件路径保存到 文件去
        COMMAND ${CMAKE_COMMAND}
            -DINSTALL_DIR=<INSTALL_DIR>
            -DCMAKE_PREFIX_PATH=${SYSTEM_PREFIX}
            -P ${__DIR}/utils/write_install_files.cmake
    # ✅ 启用所有日志（调试必备）
    LOG_DOWNLOAD      OFF                           # 下载日志
    LOG_CONFIGURE     OFF                           # 配置日志
    LOG_BUILD         OFF                           # 构建日志
    LOG_INSTALL       OFF                           # 安装日志
    LOG_OUTPUT_ON_FAILURE ON                       # 失败时自动输出日志
   STEP_TARGETS configure build install # 关键：添加 install 步骤
)


# 依赖目标 openssl-${OPENSSL_TAG} zlib-${ZLIB_TAG}
add_dependencies(
mbedtls-${MBEDTLS_TAG}
openssl-${OPENSSL_TAG}
zlib-${ZLIB_TAG})

